In [ ]:
import geopandas as gpd
import requests
policeStationUrl = 'https://donnees.montreal.ca/dataset/91f66001-b461-4f63-aff4-cddc0fe30ffe/resource/c9d0b8d6-c7a6-4766-a5cc-98e8b1392bbc/download/pdq.geojson'
responseBody = requests.get(url = policeStationUrl).json()
In [ ]:
policeStations = gpd.GeoDataFrame.from_features(responseBody['features'], crs="EPSG:4326")
path = './data/crimes.geojson'
crimes = gpd.read_file(path)
In [ ]:
# Explore the police Stations dataset
policeStations.head(10)
policeStations.describe()
# policeStations.explore()
policeStations
Out[Â ]:
| geometry | NO_CIV_LIE | PREFIX_TEM | NOM_TEMP | DIR_TEMP | MUN_TEMP | DESC_LIEU | LATITUDE | LONGITUDE | X | Y | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | POINT (-73.80730 45.49440) | 4Â 139 | BOUL | SOURCES DES | None | DDO | POSTE DE QUARTIER 4 | 45.49440000020 | -73.80730000050 | 280782.05001043 | 5039432.26350284 |
| 1 | POINT (-73.61740 45.57770) | 8Â 930 | BOUL | PIE-IX | None | MTL | POSTE DE QUARTIER 30 | 45.57770000030 | -73.61739999990 | 295637.788999419 | 5048650.25593691 |
| 2 | POINT (-73.54590 45.55690) | 4Â 555 | RUE | HOCHELAGA | None | MTL | POSTE DE QUARTIER 23 | 45.55690000020 | -73.54590000030 | 301216.518466975 | 5046333.03628669 |
| 3 | POINT (-73.70100 45.52850) | 11Â 756 | BOUL | O'BRIEN | None | MTL | POSTE DE QUARTIER 10 | 45.52850000000 | -73.70100000040 | 289099.727535319 | 5043195.53540243 |
| 4 | POINT (-73.61560 45.60770) | 6Â 100 | BOUL | HENRI-BOURASSA | None | MTN | POSTE DE QUARTIER 39 | 45.60769999960 | -73.61560000010 | 295783.071193995 | 5051984.0191112 |
| 5 | POINT (-73.81590 45.44790) | 395 | BOUL | ST-JEAN | None | PCL | POSTE DE QUARTIER 5 | 45.44789999910 | -73.81589999980 | 280089.579955731 | 5034267.33261144 |
| 6 | POINT (-73.59870 45.48640) | 21 | STRE | STANTON | None | WES | POSTE DE QUARTIER 12 | 45.48640000080 | -73.59870000000 | 297084.713826585 | 5038502.02478708 |
| 7 | POINT (-73.58500 45.46370) | 1Â 625 | AVEN | EGLISE DE L' | None | MTL | POSTE DE QUARTIER 15 | 45.46370000020 | -73.58500000000 | 298152.961783205 | 5035978.15076701 |
| 8 | POINT (-73.50540 45.64160) | 1Â 498 | BOUL | ST-JEAN-BAPTISTE | None | MTL | POSTE DE QUARTIER 49 | 45.64159999970 | -73.50540000010 | 304379.047761402 | 5055744.93770751 |
| 9 | POINT (-73.60910 45.53980) | 920 | RUE | BELANGER | None | MTL | POSTE DE QUARTIER 35 | 45.53979999940 | -73.60910000000 | 296279.817149857 | 5044437.45458332 |
| 10 | POINT (-73.69670 45.51840) | 1Â 761 | RUE | GRENET | None | VSL | POSTE DE QUARTIER 7 | 45.51840000040 | -73.69670000020 | 289432.854483541 | 5042072.28170154 |
| 11 | POINT (-73.85230 45.44730) | 2Â 883 | BOUL | ST-CHARLES | None | KIR | POSTE DE QUARTIER 1 | 45.44730000010 | -73.85230000040 | 277241.997024429 | 5034212.48671688 |
| 12 | POINT (-73.67710 45.43440) | 170 | AVEN | 15E | None | LAC | POSTE DE QUARTIER 8 | 45.43439999970 | -73.67710000000 | 290943.528353861 | 5032733.80073099 |
| 13 | POINT (-73.55300 45.60500) | 6Â 850 | BOUL | JOSEPH-RENAUD | None | ANJ | POSTE DE QUARTIER 46 | 45.60500000040 | -73.55300000030 | 300665.742551828 | 5051678.82781134 |
| 14 | POINT (-73.66210 45.45980) | 5Â 501 | AVEN | WESTMINSTER | None | CSL | POSTE DE QUARTIER 9 | 45.45979999940 | -73.66210000030 | 292122.833263554 | 5035554.01227912 |
| 15 | POINT (-73.56310 45.51650) | 1Â 669 | RUE | BERRI | None | MTL | POSTE DE QUARTIER 21 | 45.51649999990 | -73.56309999990 | 299870.159929065 | 5041844.24970038 |
| 16 | POINT (-73.57520 45.52550) | 1Â 033 | RUE | RACHEL | E | MTL | POSTE DE QUARTIER 38 | 45.52549999950 | -73.57519999980 | 298925.754820475 | 5042845.24124566 |
| 17 | POINT (-73.62170 45.41550) | 8Â 745 | BOUL | LASALLE | None | LAS | POSTE DE QUARTIER 13 | 45.41550000010 | -73.62170000000 | 295274.898787297 | 5030625.41093936 |
| 18 | POINT (-73.55100 45.52170) | 1Â 200 | AVEN | PAPINEAU | None | MTL | POSTE DE QUARTIER 22 | 45.52170000040 | -73.55100000000 | 300815.868680692 | 5042421.45838719 |
| 19 | POINT (-73.65160 45.49610) | 7Â 405 | AVEN | MOUNTAIN-SIGHTS | None | MTL | POSTE DE QUARTIER 26 | 45.49609999920 | -73.65160000040 | 292951.604697723 | 5039586.42891631 |
| 20 | POINT (-73.56930 45.54240) | 4Â 807 | RUE | MOLSON | None | MTL | POSTE DE QUARTIER 44 | 45.54240000060 | -73.56929999960 | 299388.254281215 | 5044722.94219975 |
| 21 | POINT (-73.65360 45.56860) | 1Â 805 | RUE | FLEURY | E | MTL | POSTE DE QUARTIER 27 | 45.56860000080 | -73.65359999980 | 292810.707843807 | 5047643.72786048 |
| 22 | POINT (-73.57330 45.45920) | 750 | RUE | WILLIBRORD | None | VER | POSTE DE QUARTIER 16 | 45.45920000040 | -73.57330000030 | 299067.450996659 | 5035477.16629009 |
| 23 | POINT (-73.85720 45.48610) | 14Â 680 | BOUL | PIERREFONDS DE | None | PRF | POSTE DE QUARTIER 3 | 45.48609999940 | -73.85720000040 | 276877.866253688 | 5038526.01218613 |
| 24 | POINT (-73.58640 45.63330) | 8Â 200 | BOUL | MAURICE-DUPLESSIS | None | MTL | POSTE DE QUARTIER 45 | 45.63330000080 | -73.58640000040 | 298063.769945476 | 5054826.14961521 |
| 25 | POINT (-73.63550 45.53710) | 8Â 225 | AVEN | ESPLANADE DE L' | None | MTL | POSTE DE QUARTIER 31 | 45.53710000030 | -73.63549999990 | 294217.598320268 | 5044140.54151282 |
| 26 | POINT (-73.57650 45.49610) | 1Â 432 | RUE | STE-CATHERINE | O | MTL | POSTE DE QUARTIER 20 | 45.49609999920 | -73.57650000040 | 298821.093301904 | 5039578.09620065 |
| 27 | POINT (-73.51510 45.57770) | 6Â 905 | RUE | NOTRE-DAME | E | MTL | POSTE DE QUARTIER 48 | 45.57770000030 | -73.51510000040 | 303621.555435005 | 5048643.66281027 |
| 28 | POINT (-73.59410 45.58530) | 8Â 181 | BOUL | LACORDAIRE | None | STL | POSTE DE QUARTIER 42 | 45.58530000040 | -73.59410000030 | 297457.174208208 | 5049492.46234478 |
In [ ]:
# Explore the crimes dataset
# crimes.describe()
# crimes.inf()
# crimesGroupByCategorie = crimes.dissolve("CATEGORIE")
crimes.head(10)
In [ ]:
# crimes.explore("CATEGORIE", legend="true")
crimes = crimes.filter(items=['CATEGORIE', 'DATE', 'PDQ', "geometry"])
crimes.shape
crimes
Out[Â ]:
| CATEGORIE | DATE | PDQ | geometry | |
|---|---|---|---|---|
| 0 | Vol de véhicule à moteur | 2018-09-13 | 30.0 | POINT (-73.62678 45.56778) |
| 1 | Vol de véhicule à moteur | 2018-04-30 | 30.0 | POINT (-73.62678 45.56778) |
| 2 | Vol de véhicule à moteur | 2018-09-01 | 7.0 | POINT (-73.68593 45.51912) |
| 3 | Méfait | 2017-07-21 | 21.0 | POINT (-76.23729 0.00000) |
| 4 | Méfait | 2017-07-29 | 12.0 | POINT (-76.23729 0.00000) |
| ... | ... | ... | ... | ... |
| 267678 | Vols qualifiés | 2023-03-26 | 35.0 | POINT (-76.23729 0.00000) |
| 267679 | Vol de véhicule à moteur | 2023-03-08 | 35.0 | POINT (-76.23729 0.00000) |
| 267680 | Vol de véhicule à moteur | 2023-04-19 | 35.0 | POINT (-76.23729 0.00000) |
| 267681 | Méfait | 2023-04-13 | 44.0 | POINT (-76.23729 0.00000) |
| 267682 | Méfait | 2023-01-04 | 35.0 | POINT (-76.23729 0.00000) |
267683 rows × 4 columns
In [ ]:
stoledCar = crimes[crimes["CATEGORIE"].str.contains("Vol de véhicule à moteur")]
stoledCar2023 = stoledCar[stoledCar["DATE"].str.contains("2023-")]
Questions¶
- Est-ce-qu'il y a une progression du nombre de crimes par ans sur l'ensemble de la période ?
- Est-ce-qu'il y a un effet de saisonnalité dans les crimes ?
- Est-ce-qu'il y a un jour plus propice au vol de voitures ?
In [ ]:
stoledCar2023.explore("PDQ", legend=False, tiles="CartoDB dark_matter")
/Users/ublai7c/anaconda3/envs/geoenv/lib/python3.11/site-packages/geopandas/explore.py:400: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead elif pd.api.types.is_categorical_dtype(gdf[column]):
Out[Â ]:
Make this Notebook Trusted to load map: File -> Trust Notebook